/*******************************************************************************
 * Copyright (c) 2015, 2016 Bosch Software Innovations GmbH and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Eclipse Distribution License v1.0 which accompany this distribution.
 *   
 * The Eclipse Public License is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * The Eclipse Distribution License is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *   
 * Contributors:
 * Bosch Software Innovations GmbH - Please refer to git log
 *******************************************************************************/
package org.eclipse.vorto.codegen.protobuf.templates

import org.eclipse.vorto.core.api.model.informationmodel.InformationModel
import org.eclipse.vorto.plugin.generator.InvocationContext

class ProtobufIMTemplate extends ProtobufTemplate<InformationModel> {
	
	override getContent(InformationModel element, InvocationContext context) {
		'''
		// Generated by Vorto from «element.namespace».«element.name»:«element.version»
		syntax = "proto3";
					
		package «element.namespace»;
					
		import "org/eclipse/vorto/meta.proto";
		«FOR fbProperty : element.properties»
		import "«fbProperty.type.namespace.replace(".","/")»/«fbProperty.type.name.toLowerCase».proto";
		«ENDFOR»
		
		message «element.name» {
			org.eclipse.vorto.Meta meta = 1;
			«var counter = 2»
			«FOR fbProperty : element.properties»
			«fbProperty.type.namespace».«fbProperty.type.name» «fbProperty.name» = «counter++»; «IF fbProperty.description != null»//«fbProperty.description»«ENDIF»
			«ENDFOR»
		}
		'''
	}
	
}